// Абстрактный адрес
./yii migrate/create create_location_table --fields="region:string(255):comment('Регион -область-'),region_id:string(255):comment('Код региона -области-'),district:string(255):comment('Район'),district_id:string(255):comment('Код района'),city:string(255):comment('Город -населённый пункт-'),city_id:string(255):comment('Код города -населённого пункта-'),street:string(255):comment('Улица'),street_id:string(255):comment('Код улицы'),building:string(255):comment('Дом -строение-'),building_id:string(255):comment('Код дома -строения-'),appartment:string(255):comment('Помещение'),zip_code:string(255):comment('Почтовый индекс'),arbitrary_address:string(255):comment('Произвольная строка адреса'),deleted_at:datetime"

// Категории
./yii migrate/create create_category_table --fields="name:string(255),parent_category_id:integer:foreignKey('category'),description:string(255):comment('Подробное описание'),deleted_at:datetime"

// Торговая точка
./yii migrate/create create_shop_table --fields="name:string(255),location_id:integer:foreignKey(location),top_category_id:integer:foreignKey(category):comment('Указывает на коренную категорию через которую идет привязка более низовых категорий и компонентов'),deleted_at:datetime"

//// Компонент "в вакууме", т. е. сам по себе
//./yii migrate/create create_component_table --fields="name:string(255),category_id:integer:foreignKey('category'),description:string(255):comment('Подробное описание')"

// Иерархическая связка компонентов (элемент компонента)
//TODO: сделать привязку к разным категориям
./yii migrate/create create_component_table --fields="name:string(255),short_name:string(255):comment('Короткая версия названия'),parent_component_id:integer:foreignKey(component):comment('Родительский элемент - если есть значит этот компонент может являться частью другого компонента'),category_id:integer:foreignKey(category),deleted_at:datetime"

// Поскольку изображений может быть несколько - надо сделать отдельные таблицы
./yii migrate/create create_component_image_table --fields="relative_path:string(255),component_id:integer:foreignKey(component),deleted_at:datetime"

//// Связка торговых точек и категорий (связывается верхняя коренная категория)
//./yii migrate/create create_shop_category_table --fields="shop_id:integer:foreignKey(shop),category_id:integer:foreignKey(category)"

./yii migrate/create change_foreign_keys_for_nomenclature_item_categories

>>>>>>>>>>>>>>>>>>>>>>>>>>>>

//(пока передумал удалять, может пригодиться)./yii migrate/create drop_parent_component_id_column_from_component_table --fields="parent_component_id:integer:foreignKey(component):comment('Родительский элемент - если есть значит этот компонент может являться частью другого компонента')"

./yii migrate/create add_description_column_to_component_table --fields="description:text,short_description:text,price:decimal(8,2),price_discount:decimal(8,2)"

>>>>>>>>>>>>>>>>>>>>>>>>>>>>

./yii migrate/create add_user_id_column_to_component_table --fields="user_id:integer:foreignKey('user')"

>>>>>>>>>>>>>>>>>>>>>>>>>>>>

./yii migrate/create add_long_lat_column_to_user_table --fields="long_lat:string(40):after(""):comment('Широта долгота через точку с запятой')"

//latitude, longitude

./yii migrate/create add_login_lat_long_column_to_user_table --fields="login_lat_long:string(40):comment('Широта долгота при входе на сайт через точку с запятой')"

./yii migrate/create add_company_lat_long_column_to_profile_table --fields="company_lat_long:string(40):comment('Широта долгота предприятия или пользователя через точку с запятой')"

>>>>>>>>

./yii migrate/create add_unique_index_for_website_column_of_profile_table;

>>>>>>

./yii migrate/create add_amount_column_to_component_table --fields="amount:integer:notNull:defaultValue(1)"

--

// Сотрудники
./yii migrate/create create_co_worker_table --fields="user_id:integer:foreignKey('user'),name:string(255),birthday:datetime"

// Таблица заказов
./yii migrate/create create_shop_order_table --fields="user_id:integer:foreignKey('user'),created_at:datetime,
deliver_address:text:comment('Куда доставить заказ'),deliver_customer_name:string(255),deliver_phone:string(40),deliver_email:string(255),deliver_comment:text,
deliver_required_time_begin:datetime:comment('Время когда надо доставить заказ - начало'),
deliver_required_time_end:datetime:comment('Время когда надо доставить заказ - конец')"

// Статус заказа
./yii migrate/create create_shop_order_status_table --fields="shop_order_id:integer:foreignKey('shop_order'),
type:string(50):comment('Тип заказа - создан, принят к исполнению. отложен начал готовиться в процессе доставки отменен завершен и т. д.')
accepted_at:datetime:comment('Время назначения статуса'),accepted_by:integer:foreignKey('co_worker'):comment('Сотрудник назначивший статус')"

// Компоненты заказа c названием и ценой на момент принятия заказа
./yii migrate/create create_shop_order_components_table --fields="shop_order_id:integer:foreignKey('shop_order'),
component_id:integer:foreignKey('component'),name:string(255),short_name:string(255),
order_price:decimal(8,2),order_price_discount:decimal(8,2)"

--

// Куда отправлять сигнал о получении заказа
./yii migrate/create create_shop_order_signal_table --fields="user_id:integer:foreignKey('user'),emails:text:comment('JSON - список email куда сигналить о новом заказе'),phones:text:comment('JSON - список телефонов куда отправлять SMS о новом заказе')"


--

./yii migrate/create add_order_uid_column_to_user_table --fields="order_uid:string(50):comment('UID идентификатор формы заказа')"


--

./yii migrate/create add_language_column_to_user_table --fields="language:string(20):comment('Текущий язык')"

--

./yii migrate/create create_component_set_table --fields="name:string(255),description:text"
//./yii migrate/create create_component_component_set_table --fields="component_id:integer:foreignKey(component),component_set_id:integer:foreignKey(component_set)"
./yii migrate/create create_junction_table_for_component_and_component_set_tables --fields="created_at:dateTime"

--
./yii migrate/create add_order_uid_column_to_shop_order_table --fields="order_uid:string(50):after(user_id)"


--

./yii migrate/create add_disabled_column_to_component_table --fields="disabled:integer"

--

./yii migrate/create create_component_video_table --fields="relative_path:string(255),component_id:integer:foreignKey(component),mime_type:string(255),deleted_at:datetime"

--

./yii migrate/create create_unit_table --fields="name:string(255),short_name:string(20),symbol:string(10),symbol_pattern:string(40):comment('Шаблон демонстрирующий значение вместе со знаком единицы')"

./yii migrate/create fill_unit_table

--

./yii migrate/create create_component_switch_group_table --fields="user_id:integer:foreignKey('user'),name:string(255),description:text"

--

./yii migrate/create add_unit_id_column_to_component_table --fields="unit_id:integer:foreignKey(unit):after('amount'),unit_value:double:after('unit_id'),unit_value_min:double:after('unit_value'),unit_value_max:double:after('unit_value_min'),unit_switch_group:integer:foreignKey(component_switch_group):after('unit_value_max')"

./yii migrate/create fill_component_switch_group_table

--

./yii migrate/create fill_extend_unit_table

--

./yii migrate/create add_item_select_max_column_to_component_table --fields="item_select_min:integer:after('amount'):comment('Мин количество выбираемых компонентов'),item_select_max:integer:after('item_select_min'):comment('Макс количество выбираемых компонентов')"

--

./yii migrate/create add_status_column_to_profile_table --fields="status:string(40):comment('Статус активости')"

--

./yii migrate/create add_data_column_to_shop_order_status_table --fields="data:text:comment('Та или иная дополнительная информация'),description:text:comment('Описание которое возможно захочет добавить')"

--

./yii migrate/create create_junction_table_for_shop_order_and_user_tables --fields="created_at:dateTime"

--

./yii migrate/create add_user_id_column_to_shop_order_status_table --fields="user_id:integer:foreignKey('user'):after('shop_order_id')"

--

./yii migrate/create alter_type_column_to_shop_order_status_table

//./yii migrate/create add_status_to_shop_order_table --fields="status:string(255)"

--

./yii migrate/create add_map_icon_column_to_profile_table --fields="icon_name:string(70):comment('Название изображения иконки в icomoon'),icon_color:string(255):comment('Цвет иконки'),icon_image_path:string(255):comment('Относительный путь к изображению иконки'),facility_image_path:string(255):comment('Относительный путь к изображению заведения'),schedule:text:comment('Расписание работы')"

---

./yii migrate/create create_customer_active_component_table --fields="component_id:integer:foreignKey(component),price_override:decimal(8,2),price_discount_override:decimal(8,2),amount:integer:notNull:defaultValue(1),unit_id:integer:foreignKey(unit),unit_value:double,unit_value_min:double,unit_value_max:double"


--

--

./yii migrate/create create_co_worker_function_table --fields="name:string(255)"

./yii migrate/create add_worker_site_uid_column_to_co_worker_table --fields="co_worker_function:string(70):foreignKey(co_worker_function),description:text,worker_site_uid:string(20):comment('Уникальный ID для доступа к панели с доступными ползьователю функциями')"

--

./yii migrate/create create_junction_table_for_co_worker_and_co_worker_function_tables

--

./yii migrate/create drop_co_worker_function_column_from_co_worker_table

--

./yii migrate/create add_amount_column_to_shop_order_components_table --fields="amount:integer:default(1):after(short_name)"

--

./yii migrate/create create_co_worker_decline_cause_table --fields="co_worker_id:integer:foreignKey('co_worker'),cause:text:notNull,order:integer"

--

./yii migrate/create alter_shop_order_components_and_shop_order_status_tables

---

./yii migrate/create update_co_worker_function_table_rows

--

./yii migrate/create create_texts_table --fields="group:string(50):comment('Группа к которой относится текст'),type:string(255):comment('text html т п'),data:text"


./yii migrate/create create_courier_images_table --fields="run:string(255):comment('Курьер в движении'),wait:string(255):comment('Курьер в ожидании покупателя чтобы отдать пиццу'),disabled:datetime:comment('Когда изображение стало неактивным - действует как расширенный датой boolean')"


./yii migrate/create create_courier_images_table --fields="run:string(255):comment('Курьер в движении'),wait:string(255):comment('Курьер в ожидании покупателя чтобы отдать пиццу'),disabled:datetime:comment('Когда изображение стало неактивным - действует как расширенный датой boolean')"

--

//TODO: потом доделать
./yii migrate/create add_archived_info_column_to_user_table --fields="archived_info:json:comment('Обозначает что аккаунт пользователя удален архивирован. Содержит данные архивации')"

./yii migrate/create create_account_template_table --fields="old_user_id:integer:foreignKey(user):comment('Ссылка на сохраненный в архиве аккаунт'),new_user_id:integer:foreignKey(user):comment('Ссылка новый созданный аккаунт'),name:string(255),description:text"


/**
 * Последовательность действий при замене пользовательской базы.
 *
 * 1) Создается ноовый экземпляр {{%account_template}}.
 * 2) Cтарый пользователь остается, берется его ID и вставляется в `old_user_id`.
 * 3) Заполняются `name` и `description`.
 * 4) Через `old_user_id` линкуется с таблицей `user`.
 * 5) Создается новый пользователь, в него копируются данные старого пользвателя.
 * 6) Берется ID нового пользователя и вставляется в `new_user_id`.
 */


./yii migrate/create create_courier_data_table --fields="name_of_courier:string(255),description_of_courier:text,photo_of_courier:string(255),courier_in_move::comment('Название изображения курьера в движении'),courier_is_waiting:string(255):comment('Название изображения курьера в ожидании - например ждет клиента'),velicity:integer:defaultValue(5):comment('Средняя скорость курьера - км/час'),priority:integer:notNull:defaultValue(0):comment('Приоритет при любом статусе - например при случайном выборе - чем выше тем больше.')"


// Профиль - сохранение состояние проекта
./yii migrate/create create_history_profile_table --fields="user_id:integer:foreignKey('user'):comment('Инициатор типа продавец'),user_customer_id:integer:foreignKey('user_customer'):comment('Инициатор типа покупатель'),name:string(255):comment('Короткое название'),about:text:comment('Информация для чего создавался проект'),server_info:text:comment('Данные на стороне сервера в произвольном формате json'),remote_info:text:comment('Данные на стороне пользователя в произвольном формате json'),created_at:datetime,changed_at:datetime,deleted_at:datetime"



///// ./yii migrate/create add_type_column_to_user_table --fields="type:text:after('email'):comment('Тип(ы) пользователя в JSON. Если не указан, значит обычный.')"

./yii migrate/create create_courier_data_table --fields="type:text:after('email'):comment('Тип(ы) пользователя в JSON. Если не указан, значит обычный.')"

//php ./yii create_junction_table_for_user_and_user_virtual_tables

php ./yii migrate/create create_user_virtual_table --fields="user_id:integer:foreignKey('user')"

php ./yii migrate/create create_customer_virtual_table --fields="user_id:integer:foreignKey('user')"


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//./yii migrate/create create_customer_addresses_table --fields="
//user_id:integer:foreignKey(user),raw_address

./yii migrate/create create_customer_phones_table --fields="user_id:integer:foreignKey(user),phone:string(40),description:text"

//TODO: сделать совместимым с КЛАДР
//./yii migrate/create create_customer_address_table --fields="
//user_id:integer:foreignKey(user),
//phone:string(40),description:text"


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

./yii migrate/create create_geopoint_table --fields="name:string(255):notNull,region:string(255),sub_region:string(255),code_cdek:string(20):unique,kladr_code:string(20),uuid:string(255),fias_uuid:string(255),country:string(70),region_code:string(20),latitude:float,longitude:float,index:string(20),code_boxberry:string(255):index,code_dpd:string(20):index"

из ZIP:
CREATE TABLE `geopoint` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `title` varchar(255) NOT NULL,
 `region` varchar(255) DEFAULT NULL,
 `sub_region` varchar(255) DEFAULT NULL,
 `code_cdek` int(11) NOT NULL,
 `kladr_code` varchar(20) DEFAULT NULL,
 `uuid` varchar(255) DEFAULT NULL,
 `fias_uuid` varchar(255) DEFAULT NULL,
 `country` varchar(50) DEFAULT NULL,
 `region_code` int(11) DEFAULT NULL,
 `latitude` float DEFAULT NULL,
 `longitude` float DEFAULT NULL,
 `is_default` int(1) NOT NULL DEFAULT 0,
 `weight` int(1) DEFAULT 0,
 `index` int(11) DEFAULT NULL,
 `code_boxberry` varchar(255) DEFAULT NULL,
 `code_dpd` bigint(11) unsigned DEFAULT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `code_cdek` (`code_cdek`),
 KEY `code_boxberry` (`code_boxberry`),
 KEY `code_dpd` (`code_dpd`)
) ENGINE=InnoDB AUTO_INCREMENT=44140 DEFAULT CHARSET=utf8

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

php ./yii migrate/create create_customer_virtual_table --fields="user_id:integer:foreignKey('user')"



